openUBMC Redfish规范校验和Schema更新工具特性设计说明书
| 所属SIG组: | Interface |
| 落入版本: | 2603 |
| 设计人员: | 李四光 |
| 日期: | 2026/01/20 |
Copyright © 2026 openUBMC Community
您对"本文档"的复制,使用,修改及分发受木兰宽松许可证, 第2版协议(以下简称"MulanPSL2")的约束。 为了方便用户理解,您可以通过访问https://license.coscl.org.cn/MulanPSL2了解MulanPSL2的概要 (但不是替代)。 MulanPSL2的完整协议内容您可以访问如下网址获取:https://license.coscl.org.cn/MulanPSL2。
改版记录
| 日期 | 修订版本 | 修订描述 | 作者 | 审核 |
|---|---|---|---|---|
| 2026/01/20 | v1.0 | 首版本 | 李四光 | 王建 |
目录
1.特性概述
1.1 目的
1.2范围
1.3特性需求列表
2.需求场景分析
2.1特性需求来源与价值概述
2.2特性场景分析
2.3特性影响分析
2.3.1硬件限制
2.3.2技术限制
2.3.3对License的影响分析
2.3.4对系统性能规格的影响分析
2.3.5对系统可靠性规格的影响分析
2.3.6对系统兼容性的影响分析
2.3.7与其他重大特性的交互性,冲突性的影响分析
2.4同类社区/商用软件实现方案分析
3.特性/功能实现原理(可分解出来多个Use Case)
3.1目标
3.2总体方案
4.Use Case一实现
4.1设计思路
4.2约束条件
4.3详细实现(从用户入口的模块级别或进程级别消息序列图)
4.4子系统间接口(主要覆盖模块接口定义)
4.5子系统详细设计
4.6DFX属性设计
4.6.1性能设计
4.6.2升级与扩容设计
4.6.3异常处理设计
4.6.4资源管理相关设计
4.6.5小型化设计
4.6.6可测性设计
4.6.7安全设计
4.7系统外部接口
4.8自测用例设计
5.Use Case二实现
6.可靠性&可用性设计
6.1冗余设计
6.2故障管理
6.3过载控制设计
6.4升级不中断业务
6.5人因差错设计
6.6故障预测预防设计
7.安全&隐私&韧性设计
7.1Low Level威胁分析及设计
7.1.12层数据流图
7.1.2业务场景及信任边界说明
7.1.3外部交互方分析
7.1.4数据流分析
7.1.5处理过程分析
7.1.6数据存储分析
7.1.7缺陷列表
7.2隐私风险分析与设计
7.2.1隐私风险预分析问卷
7.2.2隐私风险预分析总结
7.2.3个人数据列表
7.2.4XX需求设计
7.2.5YY需求设计
8.特性非功能性质量属性相关设计
8.1可测试性
8.2可服务性
8.3可演进性
8.4开放性
8.5兼容性
8.6可伸缩性/可扩展性
8.7 可维护性
8.8 资料
9.数据结构设计(可选)
10.参考资料清单
表目录
图目录
List of abbreviations 缩略语清单 :
| Abbreviations 缩略语 | Full spelling 英文全名 | Chinese explanation 中文解释 |
|---|---|---|
| DMTF | Distributed Management Task Force | 分布式管理任务组 |
| CSDL | Common Schema Definition Language | 公共模式定义语言 |
| OCP | Open Compute Project | 开放计算项目 |
1.特性概述
本特性旨在通过DMTF官方提供的Redfish规范校验工具(Redfish Service Validator、Redfish Protocol Validator、Redfish Interop Validator)看护openUBMC Redfish接口规范性。同时提供一键式的Redfish schema更新工具,简化schema更新流程。
通过提供脚本化工具简化DMTF工具部署和运行,并提供扫描项屏蔽功能,便于将redfish规范校验工具集成到其他自动检查环境中,或者降低人工校验场景操作复杂性。Redfish schema更新工具提供脚本快速拉取Redfish标准资源的CSDL(Common Schema Definition Language) Schema和Json Schema,实现标准资源Schema文件到快速更新。
1.1目的
本特性旨在解决以下核心问题:
- Redfish数据模型规范性:通过Redfish Service Validator校验redfish接口返回的Json数据是否符合CSDL schema定义,确保资源结构的规范性。
- Redfish HTTP协议规范性:通过Redfish Protocol Validator校验基于HTTP协议的redfish接口在协议行为方面的规范性,确保redfish接口符合标准RESTful API。
- Redfish互操作规范性:通过Redfish Interop Validator基于符合Redfish互操作性配置文件(Redfish Interoperability Profile),校验Redfih服务是否符合特定互操作性配置(例如OCP互操作配置)的要求。
- Schema标准化:通过提供CSDL schema(一种XML形式schema)支持DMTF工具对Redfish数据模型进行规范性校验,同时将标准Schema文件和Oem Schema文件进行独立管理,从而保证Schema的规范性和更新的便捷性。
1.2范围
本特性主要包括如下核心功能:
- Redfish规范性校验:提供数据模型规范性校验、HTTP协议规范性校验、互操作规范性校验。
- 校验工具的快速部署和运行:提供脚本化工具快速实现DMTF校验工具的部署和运行。
- 检查项屏蔽:提供检查项屏蔽功能,支持对不关注检查项进行屏蔽。
- Schema更新:提供脚本快速拉取Redfish标准资源的CSDL(Common Schema Definition Language) Schema和Json Schema。
- CSDL Schema生成为Json Schema:提供CSDL Schema转换为Json Schema工具,便于对新定义Oem资源的CSDL Schema快速生成对应的Json Schema。
- Json Schema转换为CSDL Schema:提供Json Schema转换为CSDL Schema工具,便于将历史定义的Oem资源Json Schema快速转换为CSDL Schema。
1.3特性需求列表
| 需求名称 | 需求描述 |
|---|---|
| Redfish Service Validator工具部署、运行和检查项屏蔽 | 支持脚本化部署和运行Redfish Service Validator校验工具,提供检查项屏蔽功能。 |
| Redfish Protocol Validator工具部署、运行和检查项屏蔽 | 支持脚本化部署和运行Redfish Protocol Validator校验工具,提供检查项屏蔽功能。 |
| Redfish Interop Validator工具部署、运行和检查项屏蔽 | 支持脚本化部署和运行Redfish Interop Validator校验工具,提供检查项屏蔽功能。 |
| Redfish Schema更新 | 支持脚本快速拉取Redfish标准资源的CSDL(Common Schema Definition Language) Schema和Json Schema |
| CSDL Schema生成为Json Schema | 支持脚本将新定义Oem资源的CSDL Schema生成对应的Json Schema |
| Json Schema转换为CSDL Schema | 支持脚本将历史定义的Oem资源Json Schema快速转换为CSDL Schema |
2.需求场景分析
2.1特性需求来源与价值概述
需求来源
本特性源于openUBMC软件在Redfish接口开发中普遍面临的以下挑战:
- 接口实现不符合标准,问题发现较晚:redfish接口实现不符合标准,缺少统一的校验工具提前发现问题。
- Schema文件依赖手动更新:redfish schema文件需要手动针对每个资源进行更新,更新效率低。
- 不支持CSDL Schema文件:资源的数据模型定义不支持CSDL Schema文件。
- 标准资源和Oem资源Schema耦合:标准资源Schema和Oem资源Schema耦合在一起,标准资源Schema难以单独更新。
价值概述
本特性的成功实施将为openUBMC开源社区带来以下核心价值:
- Redfish接口规范性提升:看护redfish数据模型规范性、协议规范性、互操作规范性,及时发现接口合规问题,提供脚本支持快速部署、运行、扫描项屏蔽。
- Redfish Schema快速更新:实现CSDL Schema和Json Schema的快速更新。
- Redfish Schema规范性:实现标准资源Schema文件和Oem资源Schema文件的解耦。
2.2特性场景分析
| 使用者 | 时间/频率 | 关键场景/任务/场景 |
|---|---|---|
| BMC开发人员 | 开发阶段持续使用 | 更新schema、定义Oem schema、接口规范性检查 |
| 运维人员 | 运行时按需使用 | 指定互操作性Profile满足度检查 |
| 测试人员 | 测试阶段使用 | redfish接口实现规范性检查 |
2.3特性影响分析
本特性在整体开发体系中扮演着 “开发-调试” 的角色。它并非BMC产品固件本身的一部分,而是在开发阶段帮助开发人员快速实现schema更新、接口规范性检查、json schema辅助生成。
2.3.1硬件限制
不涉及
2.3.2技术限制
编程语言:python、xml、json
2.3.3对License的影响分析
不涉及
2.3.4对系统性能规格的影响分析
不涉及
2.3.5对系统可靠性规格的影响分析
不涉及
2.3.6对系统兼容性的影响分析
不涉及
2.3.7与其他重大特性的交互性,冲突性的影响分析
不涉及
3.特性/功能实现原理
3.1目标
本特性的核心目标是提供脚本实现DMTF规范校验工具的快速部署、运行,并支持检查项屏蔽。同时提供Schema管理能力,支持对CSDL schema和Json Schema的更新管理,支持标准资源和oem资源的schema解耦:
主要目标
- 数据模型规范性提升:基于Redfish Service Validator工具建立redfish数据模型规范性校验能力,同时对不规范实现进行优化。
- 协议规范性提升:基于Redfish Protocol Validator工具建立redfish协议规范性校验能力,同时对不规范实现进行优化。
- 互操作规范性提升:基于Redfish Interop Validator工具建立redfish互操作规范性校验能力,同时对不规范实现进行优化。
- schema文件规范性:完善CSDL schema文件,实现标准资源schema和oem资源schema文件解耦。
- schema更新便捷性:提供schema更新脚本,实现标准schema的快速更新。
3.2总体方案
1.redfish规范性检查脚本总体方案如下:
- 工具部署/运行:负责对Redfish规范校验工具(Redfish Service Validator、Redfish Protocol Validator、Redfish Interop Validator)进行部署和运行。
- 检查结果解析&整合:对所有检查结果进行汇总、整合,提供统一化的报表。
- 检查项屏蔽:支持对不关注的检查项进行屏蔽。
2.schema规范性提升总体方案如下:
- schema隔离:实现标准schema文件和oem schema文件的独立管理
- 支持CSDL schema:通过$metadata资源提供CSDL schema文件,支持redfish使用者进行资源发现和探索,同时也便于DMTF工具进行规范校验
- 新增CSDL schema生成Json schema:开发人员新增Oem资源时先定义CSDL schema文件,然后借助脚本生成对应Json schema文件
- 历史Json schema转换CSDL schema:开发人员借助脚本将历史Oem资源Json schema文件转换为对应CSDL schema文件
schema调整策略:历史已有的Json schema完全转换为CSDL schema之后,后续所有schema文件调整均以CSDL schema为准,调整完成后再调用schema脚本生成新的Json schema,不再需要手动调整Json schema文件。
4.Use Case一实现:redfish规范性检查
4.1设计思路
提供脚本化工具对DMTF工具进行封装,从而实现DMTF校验工具的快速部署和运行,并对检查结果进行汇总、整合,提供统一化的报表,支持对不关注的检查项进行屏蔽。
4.2约束条件
该特性环境依赖包括:
- 安装有python3的windows或linux环境
- Redfish Service Validator额外依赖请参考官方说明
- Redfish Protocol Validator额外依赖请参考官方说明
- Redfish Interop Validator额外依赖请参考官方说明
4.3详细实现
4.4子系统间接口(主要覆盖模块接口定义)
不涉及
4.5子系统详细设计
详细描述各模块的修改点。
4.6DFX属性设计
4.6.1性能设计
不涉及
4.6.2升级与扩容设计
不涉及
4.6.3异常处理设计
不涉及
4.6.4资源管理相关设计
不涉及
4.6.5小型化设计
不涉及
4.6.6可测性设计
不涉及
4.6.7安全设计
不涉及
4.7系统外部接口
不涉及
4.8自测用例设计
不涉及
5.Use Case二实现:schema更新、定义、使用
1.schema更新场景:
- 开发人员根据设计专家的要求,使用schema更新脚本,将BMC集成的标准资源CSDL schema和Json schema更新到指定版本
- schema更新脚本将会对标准资源CSDL schema和Json schema按照目录独立管理
- 归档集成之后,用户可以通过redfish $metadata资源和SchemaStore资源查询对应的schema信息
2.新定义Oem资源的CSDL schema场景:
- 开发人员新增Oem资源时,先定义Oem CSDL schema文件,完成对Oem资源的描述
- 然后借助schema脚本生成对应的Json schema
3.历史Oem资源Json schema转换CSDL schema场景:
- 借助schema脚本将历史已有的Json schema生成对应的CSDL schema文件
- CSDL schema文件生成后,后续调整schema定义时仅调整CSDL schema,然后再进行Json schema生成
6.可靠性&可用性设计
6.1冗余设计
不涉及
6.2故障管理
不涉及
6.3过载控制设计
不涉及
6.4升级不中断业务
不涉及
6.5人因差错设计
不涉及
6.6故障预测预防设计
不涉及
7.安全&隐私&韧性设计
不涉及
7.1Low Level威胁分析及设计
7.1.12层数据流图
不涉及
7.1.2业务场景及信任边界说明
不涉及
7.1.3外部交互方分析
不涉及
7.1.4数据流分析
不涉及
7.1.5处理过程分析
不涉及
7.1.6数据存储分析
不涉及
7.1.7缺陷列表
不涉及
7.2隐私风险分析与设计
不涉及
7.2.1隐私风险预分析问卷
不涉及
7.2.2隐私风险预分析总结
不涉及
7.2.3个人数据列表
不涉及
7.2.4XX需求设计
不涉及
7.2.5YY需求设计
不涉及
8.特性非功能性质量属性相关设计
8.1可测试性
不涉及
8.2可服务性
不涉及
8.3可演进性
后续新增功能均基于相关脚本进行扩展
8.4开放性
不涉及
8.5兼容性
不涉及
8.6可伸缩性/可扩展性
不涉及
8.7可维护性
不涉及
8.8资料
- openUBMC Redfish规范校验和Schema更新工具特性设计说明书
9.数据结构设计
不涉及